[INFO] cloning repository https://github.com/rroohhh/draw
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rroohhh/draw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frroohhh%2Fdraw", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frroohhh%2Fdraw'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c9e87e72197d1f754c6e80dd70acbbea0e442b4f
[INFO] checking rroohhh/draw against master#af3c6e733a40e671550e0f0f5aeecaa13772ba56 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frroohhh%2Fdraw" "/workspace/builds/worker-12/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/rroohhh/draw on toolchain af3c6e733a40e671550e0f0f5aeecaa13772ba56
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-12/source/.cargo/config
[INFO] started tweaking git repo https://github.com/rroohhh/draw
[INFO] removed path dependency winit from git repo https://github.com/rroohhh/draw
[INFO] finished tweaking git repo https://github.com/rroohhh/draw
[INFO] tweaked toml for git repo https://github.com/rroohhh/draw written to /workspace/builds/worker-12/source/Cargo.toml
[INFO] crate git repo https://github.com/rroohhh/draw already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-12/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] baddc52aa591696767bc2cc77ee21dd795b6825ad202945b85a9069ded0386fe
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "baddc52aa591696767bc2cc77ee21dd795b6825ad202945b85a9069ded0386fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "baddc52aa591696767bc2cc77ee21dd795b6825ad202945b85a9069ded0386fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "baddc52aa591696767bc2cc77ee21dd795b6825ad202945b85a9069ded0386fe", kill_on_drop: false }`
[INFO] [stdout] baddc52aa591696767bc2cc77ee21dd795b6825ad202945b85a9069ded0386fe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] a1f9c84d6b70a824648e7ef113a701b5be6f7ed580df1783303f15eadc11e4e5
[INFO] running `Command { std: "docker" "start" "-a" "a1f9c84d6b70a824648e7ef113a701b5be6f7ed580df1783303f15eadc11e4e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling xml-rs v0.8.3
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling libloading v0.6.3
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking smallvec v1.4.2
[INFO] [stderr]     Checking xdg v2.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.3.0
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling num-rational v0.3.0
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]     Checking walkdir v2.3.1
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking wayland-sys v0.23.6
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]    Compiling wayland-scanner v0.23.6
[INFO] [stderr]     Checking ordered-float v1.1.0
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking line_drawing v0.7.0
[INFO] [stderr]     Checking num-complex v0.3.0
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glium v0.27.0
[INFO] [stderr]     Checking rusttype v0.7.9
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]    Compiling wayland-client v0.23.6
[INFO] [stderr]    Compiling wayland-protocols v0.23.6
[INFO] [stderr]     Checking wayland-commons v0.23.6
[INFO] [stderr]     Checking calloop v0.4.4
[INFO] [stderr]     Checking num v0.3.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.6.6
[INFO] [stderr]     Checking winit v0.22.2
[INFO] [stderr]     Checking glutin v0.24.1
[INFO] [stderr]     Checking draw v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `glutin::GlContext`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use glutin::GlContext;
[INFO] [stdout]   |     ^^^^^^^^---------
[INFO] [stdout]   |     |       |
[INFO] [stdout]   |     |       help: a similar name exists in the module: `Context`
[INFO] [stdout]   |     no `GlContext` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `glutin::GlContext`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use glutin::GlContext;
[INFO] [stdout]   |     ^^^^^^^^---------
[INFO] [stdout]   |     |       |
[INFO] [stdout]   |     |       help: a similar name exists in the module: `Context`
[INFO] [stdout]   |     no `GlContext` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `EventsLoop` in `glutin`
[INFO] [stdout]    --> src/main.rs:404:35
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let mut events_loop = glutin::EventsLoop::new();
[INFO] [stdout]     |                                   ^^^^^^^^^^ could not find `EventsLoop` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:493:25
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 glutin::Event::WindowEvent { event, .. } => match event {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:494:29
[INFO] [stdout]     |
[INFO] [stdout] 494 |                     glutin::WindowEvent::HiDpiFactorChanged(factor) => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:497:29
[INFO] [stdout]     |
[INFO] [stdout] 497 |                     glutin::WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:527:29
[INFO] [stdout]     |
[INFO] [stdout] 527 |                     glutin::WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseButton` in `glutin`
[INFO] [stdout]    --> src/main.rs:528:53
[INFO] [stdout]     |
[INFO] [stdout] 528 |                         if button == glium::glutin::MouseButton::Left {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^ could not find `MouseButton` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `ElementState` in `glutin`
[INFO] [stdout]    --> src/main.rs:529:56
[INFO] [stdout]     |
[INFO] [stdout] 529 | ...                   if state == glium::glutin::ElementState::Pressed {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^ could not find `ElementState` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `EventsLoop` in `glutin`
[INFO] [stdout]    --> src/main.rs:404:35
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let mut events_loop = glutin::EventsLoop::new();
[INFO] [stdout]     |                                   ^^^^^^^^^^ could not find `EventsLoop` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:540:29
[INFO] [stdout]     |
[INFO] [stdout] 540 |                     glutin::WindowEvent::AxisMotion { device_id, axis, value } => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:554:29
[INFO] [stdout]     |
[INFO] [stdout] 554 |                     glutin::WindowEvent::CloseRequested => closed = true,
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowBuilder` in `glutin`
[INFO] [stdout]    --> src/main.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let window = glutin::WindowBuilder::new().with_title("draw");
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ not found in `glutin`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 6   | use glutin::window::WindowBuilder;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn render(&self, context: &glium::backend::Facade, frame: &mut glium::Frame, offset: &CanvasPoint, scale: &CanvasScale);
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn glium::backend::Facade`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:97:32
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn box_clone(&self) -> Box<Stroke>;
[INFO] [stdout]    |                                ^^^^^^ help: use `dyn`: `dyn Stroke`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn box_clone(&self) -> Box<Stroke> {
[INFO] [stdout]     |                                ^^^^^^ help: use `dyn`: `dyn Stroke`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:493:25
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 glutin::Event::WindowEvent { event, .. } => match event {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:494:29
[INFO] [stdout]     |
[INFO] [stdout] 494 |                     glutin::WindowEvent::HiDpiFactorChanged(factor) => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:497:29
[INFO] [stdout]     |
[INFO] [stdout] 497 |                     glutin::WindowEvent::CursorMoved { device_id, position, modifiers } => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:527:29
[INFO] [stdout]     |
[INFO] [stdout] 527 |                     glutin::WindowEvent::MouseInput { device_id, state, button, modifiers } => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseButton` in `glutin`
[INFO] [stdout]    --> src/main.rs:528:53
[INFO] [stdout]     |
[INFO] [stdout] 528 |                         if button == glium::glutin::MouseButton::Left {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^ could not find `MouseButton` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `ElementState` in `glutin`
[INFO] [stdout]    --> src/main.rs:529:56
[INFO] [stdout]     |
[INFO] [stdout] 529 | ...                   if state == glium::glutin::ElementState::Pressed {
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^ could not find `ElementState` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:540:29
[INFO] [stdout]     |
[INFO] [stdout] 540 |                     glutin::WindowEvent::AxisMotion { device_id, axis, value } => {
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowEvent` in `glutin`
[INFO] [stdout]    --> src/main.rs:554:29
[INFO] [stdout]     |
[INFO] [stdout] 554 |                     glutin::WindowEvent::CloseRequested => closed = true,
[INFO] [stdout]     |                             ^^^^^^^^^^^ could not find `WindowEvent` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowBuilder` in `glutin`
[INFO] [stdout]    --> src/main.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |     let window = glutin::WindowBuilder::new().with_title("draw");
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ not found in `glutin`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 6   | use glutin::window::WindowBuilder;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn render(&self, context: &glium::backend::Facade, frame: &mut glium::Frame, offset: &CanvasPoint, scale: &CanvasScale) {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn glium::backend::Facade`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             let len = (dx * dx + dy * dy);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:232:23
[INFO] [stdout]     |
[INFO] [stdout] 232 |             let len = (dx * dx + dy * dy);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:294:23
[INFO] [stdout]     |
[INFO] [stdout] 294 |             let len = (dx * dx + dy * dy);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn render(&self, context: &glium::backend::Facade, frame: &mut glium::Frame, offset: &CanvasPoint, scale: &CanvasScale);
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn glium::backend::Facade`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:97:32
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn box_clone(&self) -> Box<Stroke>;
[INFO] [stdout]    |                                ^^^^^^ help: use `dyn`: `dyn Stroke`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng`, `thread_rng`
[INFO] [stdout]    --> src/main.rs:415:16
[INFO] [stdout]     |
[INFO] [stdout] 415 |     use rand::{thread_rng, Rng};
[INFO] [stdout]     |                ^^^^^^^^^^  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:432:30
[INFO] [stdout]     |
[INFO] [stdout] 432 |     let mut strokes: Vec<Box<Stroke>> = Vec::new();
[INFO] [stdout]     |                              ^^^^^^ help: use `dyn`: `dyn Stroke`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn box_clone(&self) -> Box<Stroke> {
[INFO] [stdout]     |                                ^^^^^^ help: use `dyn`: `dyn Stroke`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn render(&self, context: &glium::backend::Facade, frame: &mut glium::Frame, offset: &CanvasPoint, scale: &CanvasScale) {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn glium::backend::Facade`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             let len = (dx * dx + dy * dy);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:232:23
[INFO] [stdout]     |
[INFO] [stdout] 232 |             let len = (dx * dx + dy * dy);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:294:23
[INFO] [stdout]     |
[INFO] [stdout] 294 |             let len = (dx * dx + dy * dy);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng`, `thread_rng`
[INFO] [stdout]    --> src/main.rs:415:16
[INFO] [stdout]     |
[INFO] [stdout] 415 |     use rand::{thread_rng, Rng};
[INFO] [stdout]     |                ^^^^^^^^^^  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:432:30
[INFO] [stdout]     |
[INFO] [stdout] 432 |     let mut strokes: Vec<Box<Stroke>> = Vec::new();
[INFO] [stdout]     |                              ^^^^^^ help: use `dyn`: `dyn Stroke`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_hidpi_factor` found for reference `&glium::glutin::window::Window` in the current scope
[INFO] [stdout]    --> src/main.rs:410:55
[INFO] [stdout]     |
[INFO] [stdout] 410 |     let mut dpi_factor = display.gl_window().window().get_hidpi_factor();
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^ method not found in `&glium::glutin::window::Window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_hidpi_factor` found for reference `&glium::glutin::window::Window` in the current scope
[INFO] [stdout]    --> src/main.rs:410:55
[INFO] [stdout]     |
[INFO] [stdout] 410 |     let mut dpi_factor = display.gl_window().window().get_hidpi_factor();
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^ method not found in `&glium::glutin::window::Window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `poll_events` found for struct `glium::glutin::event_loop::EventLoop<_>` in the current scope
[INFO] [stdout]    --> src/main.rs:491:21
[INFO] [stdout]     |
[INFO] [stdout] 491 |         events_loop.poll_events(|event| {
[INFO] [stdout]     |                     ^^^^^^^^^^^ method not found in `glium::glutin::event_loop::EventLoop<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `poll_events` found for struct `glium::glutin::event_loop::EventLoop<_>` in the current scope
[INFO] [stdout]    --> src/main.rs:491:21
[INFO] [stdout]     |
[INFO] [stdout] 491 |         events_loop.poll_events(|event| {
[INFO] [stdout]     |                     ^^^^^^^^^^^ method not found in `glium::glutin::event_loop::EventLoop<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 13 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `draw`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 13 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "a1f9c84d6b70a824648e7ef113a701b5be6f7ed580df1783303f15eadc11e4e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a1f9c84d6b70a824648e7ef113a701b5be6f7ed580df1783303f15eadc11e4e5", kill_on_drop: false }`
[INFO] [stdout] a1f9c84d6b70a824648e7ef113a701b5be6f7ed580df1783303f15eadc11e4e5
